In computer graphics systems, an image is stored in memory as an array of values with one value provided for each pixel. The dimensions of the array are given by the height and width of the image and the array values determine how the pixel will appear when it is displayed. In a bi-level display, a single bit is provided for each pixel and the pixel can only be displayed as “on” or “off.” However, an 8, 16, or 32 bit data word is commonly used for the array values to represent the intensity of each of the color components of a color pixel. For example, an 8-bit data word may represent one of 256 different colors, a 16-bit data word may represent one of 65,536 different colors, and so on. The number of bits associated with each pixel in the image array is referred to as the “depth” of the array. Because the number of bits associated with each pixel also describes how accurately the colors in the image will be rendered, the number of bits is also referred to as the “resolution” of the data word.
When a data word is used to represent the color components of a pixel, typically a color model, such as RGB is used. The RGB color model employs a unit cube subset of the three dimensional Cartesian coordinate system. That is, the X axis represents a primary green value between 0 and 1, the y axis represents a primary blue value between 0 and 1, and the z axis represents a primary red value between 0 and 1. The RGB primary colors are additive; that is, the values that are specified for individual primaries are added together to obtain the desired color. For example, using the notation: (R, G, B), white and black are given, respectively, as (0, 0, 0) and (1, 1, 1). Red is defined as (1, 0, 0) and yellow as (1, 1, 0). In theory, the primaries may take any value between 0 and 1. In practice, however, the primaries can only take a fixed number of discrete values. To take a simple example, if the value of a primary is represented by a 2-bit binary number, the four discrete values are possible: 00, 01, 10, 11. If a 3-bit binary number is used, eight values are possible: 000, 001, 010, 011, 100, 101, 110, 111. In the binary number system, the “least significant bit” or LSB is the right-most bit. The LSB adds to the number of colors that can be specified. For example, using a 2-bit system, yellow is defined as (11, 11, 00). If three bits are used, the LSB allows for several additional shades of yellow: (111, 111, 000), (110, 11, 000), (111, 110, 000), and (110, 110, 000).
While the terms “resolution” and “depth” are used synonymously to describe the third dimension of the image array, the terms are not limited to visual images or graphics systems. More generally, the number of bits used to express digital data provides the resolution or depth of the data word. For example, an eight bit data word may be used to represent data of any type to a resolution of 1 part in 256, and a 16 bit data word may represent data to a resolution of one part in 65,536.
The analog-to-digital (“A/D”) converter provides an example of the use of these terms outside the realm of graphics systems. The function of an A/D converter is to produce a data word that represents the magnitude of a voltage or current. Typically, a transducer first converts physical information such as sound, pressure, or temperature into a voltage or current that the A/D converter then uses to create a binary data word. A fundamental specification for an A/D converter is its resolution. If an A/D converter having an 8-bit resolution receives an electrical signal from a microphone, it will convert each sample of the signal into 1 of 256 possible values. A 16-bit A/D converter provides greater resolution by converting each sample into 1 of 65,536 possible values. As this example shows, the resolution of a data word generally means the number of bits used in the data word regardless of the type of information represented digitally. For the reader's convenience, the term “depth” will be used in this specification to refer to the number of bits used in a data word.
Display devices are provided to support a predetermined color depth. For example, a typical liquid crystal display (“LCD”) device may support 65,536 (or 64 kB) colors. Such an LCD will therefore be adapted to receive 16 bit color data words from a graphics controller.
A 64 kB color LCD can be used with a graphics controller providing lesser color depth, i.e., data words having fewer than 16 bits. For example, if the graphics controller produces only 8 bit color data words, the LCD will display only 256 different colors instead of the 65,536 colors that it is capable of. The resulting images displayed on the LCD will lack the color depth of images that are defined by full 16-bit color data words, but this may be acceptable in certain circumstances.
Data words are typically provided over parallel data lines to a display device so that each bit of the data word is received on a separate pin. The graphics controller refreshes the display periodically, e.g., at a rate of 70 Hz. In each refresh cycle, the graphics controller provides the display device with an updated value for the color of each pixel of the display. For a 16 bit color display, each of the 16 data lines is refreshed at the refresh rate.
If a particular bit in a data word stays the same from one refresh cycle to the next, the graphics controller simply drives the data line with the same logic value as in the previous refresh cycle. If the particular color bit changes, however, the graphics controller must drive the data line to its opposite logic value. This is referred to as “toggling the pin.” (Logic devices recognize the binary logic values of “0” or “1,” respectively, as a voltage near 0V or near a higher voltage, such as +3.3V. Thus, when a pin is toggled, the voltage on the pin must be changed.) Toggling the pin consumes significantly more power than driving the data line with the same logic value as in the previous refresh cycle. Further, the power required to toggle a pin is significantly larger than the power required to change a logic value at some point within an integrated circuit, such as a graphics controller. With each additional pin that is toggled in a refresh cycle, more power is used. Since greater color depth requires more color bits and hence more data lines, increasing color depth can appreciably increase power consumption.
While large color depth is generally an attractive feature, it is always desirable to reduce power consumption. This is especially true in portable, battery-powered electronic devices. In devices having a display, a typical method for conserving power is to enter a “power save” mode in which the display controller simply stops refreshing the display after a period of inactivity. A disadvantage of this technique, however, is that the information on the display cannot be seen.
Accordingly, there is a need for a method and apparatus for conserving power in electronic devices having a display that permits information on the display to be seen even while in a power save mode.